package com.yuzhitong.shapi.contract;

import com.yuzhitong.shapi.base.BaseView;
import com.yuzhitong.shapi.base.net.BaseListBean;
import com.yuzhitong.shapi.bean.CategoryBean;
import com.yuzhitong.shapi.bean.MovieBean;

import java.util.List;
import java.util.Map;

import io.reactivex.rxjava3.core.Observable;

/**
 * Created by Brsya
 * CreateDate: 2022/5/8  20:00
 * Description:
 * 分类筛选页
 */
public interface CategoryContract {
    interface Model{
        /**
         * 按标签获取影视列表
         */
        Observable<BaseListBean<MovieBean>> getMovieList(Map<String, Object> par);
        /**
         * 获取分类
         */
        Observable<BaseListBean<CategoryBean>> getCategory(Map<String, Object> par);
    }


    interface View extends BaseView{

        /**
         * 显示分类
         */
        void showCategory(List<CategoryBean> categoryBeans);
        /**
         * 显示列表
         */
        void showMovieList(List<MovieBean> movieBeans);
        /**
         * 列表没有更多数据
         */
        void showNoMore();
    }


    interface Presenter{
        /**
         * 按标签获取影视列表
         * @param pageNumber 页数
         * @param type 类型：电影 电视剧 综艺 动漫 分类的code
         * @param tags 标签
         * @param area 地区
         * @param year 年份
         * @param sort 排序
         */
        void getMovieList(int pageNumber, String type, String tags, String area, String year, String sort);

        /**
         * 获取分类
         */
        void  getCategory();
    }
}
